package eteam.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import eteam.aps.model.entity.ParamInfo;
import eteam.aps.model.vo.ParamInfoDtlVo;
import eteam.aps.model.vo.ParamInfoVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 参数信息持久层
 *
 * @author WMT
 */
@Mapper
public interface ParamInfoMapper extends BaseMapper<ParamInfo> {

    /**
     * 根据fid逻辑删除参数信息,需要设置修改人 修改时间
     * @param paramInfo 参数信息
     * @return 受影响的行数
     */
    int deleteOne(ParamInfo paramInfo);

    /**
     * 根据fId物理删除字典
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFId(String fId);

    /**
     * 更新参数信息
     * @param paramInfo 参数信息
     * @return 受影响的行数
     */
    int updateOne(ParamInfo paramInfo);


    /**
     * 统计 参数来源 的总数
     * @param fParamFrom 参数来源数据
     * @return 总数
     */
    int selectCountByFDpFrom(int fParamFrom);

    /**
     * 统计 参数类型 的总数
     * @param fDpType 参数类型
     * @return 总数
     */
    int selectCountByFDpType(int fDpType);

    /**
     * 统计 参数名称 的总数
     * @param fDpName 参数名称
     * @return 总数
     */
    int selectCountByFDpName(String fDpName);

    /**
     * 统计 参数编号 的总数
     * @param fDpCode 参数编号
     * @return 总数
     */
    int selectCountByFDpCode(String fDpCode);

    /**
     * 根据fid查询参数状态
     * @param fId fId
     * @return 参数状态
     */
    int selectFStateByFId(String fId);

    /**
     * 分页查询所有参数数据 --记录
     * @param map 查询参数， 分页参数
     * @return 参数列表
     */
    List<ParamInfoVo> selectAll(Map<String, Object> map);

    /**
     * 分页查询所有参数信息 --总条数
     * @param map
     * @return
     */
    int selectCountAll(Map<String, Object> map);

    /**
     * 根据fId查询参数详情
     * @param fId fId
     * @return 参数详情
     */
    ParamInfoVo selectByfId(String fId);

    /**
     * 根据录入人id查询录入人姓名
     * @param cuserId
     * @return
     */
    String selectCreatorName(String cuserId);

    /**
     * 在产品子表中查询参数信息
     * @return 参数信息
     */
    List<ParamInfoDtlVo> selectParamDtl(int fState);

}
